package com.example.app.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface RedisRateLimiter {
    /**
     * 限流 key 前缀（默认使用类名+方法名）
     */
    String keyPrefix() default "";

    /**
     * 限流速率（每秒允许的请求数）
     */
    long rate() default 100;

    /**
     * 令牌桶容量
     */
    long capacity() default 100;

    /**
     * 获取令牌的等待时间（毫秒）
     */
    long waitTime() default 0;

    /**
     * 限流提示信息
     */
    String message() default "请求过于频繁，请稍后再试";
}
